package com.rabbit.eap.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.rabbit.eap.system.entity.SysMenu;
import com.rabbit.eap.system.param.SysMenuPageParam;
import com.rabbit.eap.system.vo.SysMenuVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.io.Serializable;
import java.util.List;

/**
 * @projectName eap
 * @packageName com.rabbit.eap.system.mapper
 * @className SysMenuMapper
 * @author： rabbit
 * @version： 1.0
 * @since： 2020/06/06 23:34:03
 * <p>Description:
 * 菜单 Mapper 接口
 * </p>

 */
@Repository
public interface SysMenuMapper extends BaseMapper<SysMenu> {

    /**
     * 根据ID获取查询对象
     *
     * @param id
     * @return
     */
    SysMenuVO getSysMenuById(Serializable id);

    /**
     * 获取分页对象
     *
     * @param page
     * @param sysMenuPageParam
     * @return
     */
    IPage<SysMenuVO> getSysMenuPageList(@Param("page") Page page, @Param("param") SysMenuPageParam sysMenuPageParam);

    /**
     * @Description 根据用户ID查询权限
     * @methodName: selectMenuPermsByUserId
     * @param userId: 用户id
     * @return: java.util.List<java.lang.String> 权限列表
     * @date: 2020/5/31 22:23
     * @author: rabbit
     *
     */
    List<String> selectMenuPermsByUserId(@Param("userId") Long userId);

    List<SysMenu> getMenuListByUserId(SysMenu menu);

    List<Integer> getMenuListByRoleId(Long roleId);

    List<SysMenu> selectMenusByUserId(@Param("userId") Long id);

    List<SysMenu> getRoleMenu(@Param("roleId") Long roleId);
}
